﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using RESTServices.Dominio;
using System.Data.SqlClient;

namespace RESTServices.Persistencia
{
    public class ComboDAO
    {
        public Combo Crear(Combo comboACrear)
        {
            Combo comboCreado = null;
            string sql = "INSERT INTO t_combo  VALUES(@cod, @nomb,@desc)";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", comboACrear.IdCombo));
                    com.Parameters.Add(new SqlParameter("@nomb", comboACrear.Nombre));
                    com.Parameters.Add(new SqlParameter("@desc", comboACrear.Descripcion));
                    com.ExecuteNonQuery();

                }
            }
            comboCreado = Obtener(comboACrear.IdCombo);
            return comboCreado;
        }
        public Combo Obtener(int codigo)
        {
            Combo comboEncontrado = null;
            string sql = "SELECT * FROM  T_combo WHERE idcombo=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", codigo));
                    using (SqlDataReader resultado = com.ExecuteReader())
                        if (resultado.Read())
                        {
                            comboEncontrado = new Combo()
                            {
                                IdCombo = (int)resultado["idcombo"],
                                Nombre = (string)resultado["nombre"],
                                Descripcion = (string)resultado["descripcion"]
                            };

                        }
                }
            }
            return comboEncontrado;
        }
        public Combo Modificar(Combo comboAModificar)
        {
            Combo comboModificado = null;
            string sql = "UPDATE T_combo SET NOMBRE=@nomb, DESCRIPCION=@desc WHERE idcombo=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", comboAModificar.IdCombo));
                    com.Parameters.Add(new SqlParameter("@nomb", comboAModificar.Nombre));
                    com.Parameters.Add(new SqlParameter("@desc", comboAModificar.Descripcion));

                    com.ExecuteNonQuery();

                }
            }
            comboModificado = Obtener(comboAModificar.IdCombo);
            return comboModificado;
        }
        public void Eliminar(Combo comboAEliminar)
        {
            Combo comboEliminado = null;
            string sql = "DELETE FROM T_COMBO WHERE idcombo=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", comboAEliminar.IdCombo));
                    com.Parameters.Add(new SqlParameter("@nomb", comboAEliminar.Nombre));
                    com.ExecuteNonQuery();

                }
            }
            comboEliminado = Obtener(comboAEliminar.IdCombo);
        }
        public List<Combo> ListarTodos()
        {
            Combo al = null;
            List<Combo> traeCombos = new List<Combo>();
            string sql = "SELECT * FROM  T_COMBO";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {

                    using (SqlDataReader resultado = com.ExecuteReader())
                        if (resultado.HasRows)
                        {
                            while (resultado.Read())
                            {
                                al = new Combo()
                                {
                                    IdCombo = (int)resultado["idcombo"],
                                    Nombre = (string)resultado["nombre"],
                                    Descripcion = (string)resultado["descripcion"],
                                };
                                traeCombos.Add(al);
                            }
                        }

                }
            }
            return traeCombos;
        }
    }
}